1
方法调用的机制
AI035Lesson 13
00:00

在 Ruby 中,方法调用并非跳转到一个固定的内存地址;它是一个动态的 消息传递事件。当你调用一个方法时,你实际上是向一个 接收者发送消息。该消息包含方法名、可选参数,以及可能的 块关联

1. 调用语法与歧义性

Ruby 具有极高的灵活性: Foo.BarFoo.Bar() 是等价的。然而, Foo::Bar 通常指一个常量,而 Foo::Bar() 则强制进行方法调用。括号经常被省略,以实现类似 DSL 的体验,使方法看起来像属性一样。

2. 操作符的解构

操作符实际上就是 可重定义的方法。表达式 expr1 + expr2(expr1).+(expr2)的简写形式。这适用于一元运算符(-obj),二元运算符(a < b),以及后缀运算符。

接收者消息(方法)块侧车移交控制权

3. yield 机制

方法使用 yield 将控制流推入相关块中。通过使用 Kernel.block_given?,方法可以根据调用者的上下文动态决定如何处理逻辑。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>